home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-30 | 106.4 KB | 2,407 lines |
- This file summarizes all changes made to Tk since version 1.0 was
- released on March 13, 1991. Changes that aren't backward compatible
- are marked specially.
-
- sccsid = @(#) changes 1.21 95/06/30 11:18:48
-
- 3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
- the interpreter when the main window is deleted (otherwise there will
- be dangling pointers to the non-existent window).
-
- 3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
- some X servers get upset at this.
-
- 3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
- couldn't find group on shareList" panic.
-
- 3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
- handle listboxes (and scrollbars) with zero total entries in them.
-
- 3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
-
- 3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
- in some cases where wish scripts invoke "destroy .".
-
- 3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
- handler.
-
- 3/23/91 (bug fix and new feature) Added -name option to main.c, made
- it more clever about choosing name (was always using the name "wish"
- on most Unix systems).
-
- 3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
- used it to malloc strings for various widget options that used to be
- Tk_Uid's (e.g. button text, message strings, etc.). Eliminates core
- leaks when values change in continuous non-repeating fashion.
-
- 3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
- Tk_EventuallyFree procedures to help manage widget records and avoid
- premature memory free-ing.
-
- 4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
- wasn't tracking correctly when wm-induced size change also changed window
- position (e.g. menus wouldn't be displayed at the right places).
-
- 4/5/91 (new feature) Added "invoke" option to widget command for buttons,
- check buttons, and radio buttons.
-
- 4/5/91 (new feature) Added "unpack" option to "pack" command.
-
- 4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
- more careful about window deletions that occur while repacking is in
- progress.
-
- 4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
- Tk_Preserve and Tk_Release. Should fix many problems.
-
- 4/6/91 (bug fix) Changed "winfo children" to generate correct lists
- when child names have embedded spaces.
-
- 4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
- "winfo".
-
- 4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
- %-substitutions in commands (e.g. long path names) and caused memory
- to be overwritten. Modified tkBind.c to fix.
-
- ---------------------- Release 1.1, 4/18/91 -------------------------
-
- 4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
- windows causes windows to gradually walk south when moved or resized.
- Fixed tkWm.c to patch around the problem.
-
- ---------------------- Release 1.2, 4/24/91 -------------------------
-
- 4/26/91 (new feature) Added -geometry and -display switches to wish.
- Also wrote wish manual entry.
-
- 5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
- at right edge of window when strings were to large to fit in window.
-
- 5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
- updated when elements were deleted: tended to cause errors in
- communication with scrollbars.
-
- 5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
- consecutive points in a polygon were the same (happened with some
- configurations of radio buttons, for example).
-
- 5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
-
- 6/1/91 (bug fix) Make sure that pointers are never used after being
- freed.
-
- 6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
- values to not always be printed correctly.
-
- 6/15/91 (bug fix) Make sure that interpreters are always unregistered
- when their main windows are deleted, and make wish delete the main
- window before exiting.
-
- 8/21/91 (misfeature correction) Automatically set source of window
- position to "user" in "wm geometry" command, unless it has been
- explicitly set to "program".
-
- 9/5/91 (bug fix) Modified option code to accept '#' as a comment
- character in .Xdefaults files, in addition to '!'.
-
- 9/10/91 (misfeature correction) Changed binding mechanism so that
- numeric %-sequences are output in decimal instead of hex.
-
- 9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
- checking files and X connections properly so it missed events.
-
- 10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
- table" structure, which can be used to create bindings on items in
- canvases as well as windows.
-
- 10/6/91 (new feature) Upgraded buttons and menus to use new tracing
- code in Tcl 6.0. Allows radio buttons and check buttons to both set
- and clear themselves when associated variable changes.
-
- 10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
- selection when new entries were inserted in the listbox after the location
- of the selected item(s), and goofed up on redisplay if selected item
- was deleted and then selection was immediately lost.
-
- 10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
- manages window; this led to core dumps in some situations.
-
- 10/31/91 (reorganization) Renamed manual entries so that they are no
- more than 14 characters in length.
-
- 10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
- doesn't needed to be included by tk.h.
-
- 11/3/91 (portability improvement) Eliminated use of "class" as a variable
- name, since it's a reserved word in C++.
-
- 11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
- use of Tcl hash tables instead of separate "Hash_" module. The "lib"
- subdirectory is no longer needed in Tk.
-
- ---------------------- Release 1.3, 11/7/91 -------------------------
-
- 11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
- are modified (FindSequence in tkBind.c forget to set *maskPtr).
-
- 11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue. Could
- cause new entries to get created unnecessarily.
-
- 12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
- special characters (e.g. [ or \) that appear in %-replacements, so that
- they can be parsed cleanly.
-
- 12/10/91 (bug fix) Manual entries had first lines that caused "man" program
- to try weird preprocessor. Added blank comment lines to fix problem.
-
- 1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
- and the like to make it more clear that the argument must be a Tk_Uid
- and not a string.
-
- 1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
- very narrow (too small to hold both arrows) could cause negative values
- in calls to XClearArea, which crashed some servers.
-
- 1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
- is 0. Occasionally affected things like message window geometry.
-
- 1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
- Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
- in Tk_ConfigureWidget.
-
- ---------------------- Release 1.4, 1/10/92 -------------------------
-
- 1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
- properly during menubutton cleanup if an error occurred during
- menubutton creation.
-
- 1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
- scrollbars to display a slider that was too large.
-
- 2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
- where new mask was specified for existing handler.
-
- 2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
- bindings from the pattern table: only did the removal for the
- first pattern in a pattern list.
-
- 2/15/92 (new feature) Added procedures Tk_DefineBitmap and
- Tk_SizeOfBitmap. Tk_GetBitmapFromData is now considered obsolete
- and probably shouldn't be used anymore. Tk_GetBitmapFromData
- is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
-
- 2/15/92 (new feature) Added "curselection" and "select clear" options
- to widget command for listboxes.
-
- 2/15/92 (new feature) Added Tk_3DBorderColor procedure.
-
- 2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
- the slider position to lie within the object's range: can scroll off the
- end of an object, if the object permits it. Changed listboxes and
- entries to explicitly prevent viewing off the ends. Also relaxed
- listbox index checks so that out-of-range indices are automatically
- adjust to fit within the listbox range.
-
- 2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
- if a new window's name was found to be in use already. Fixed to clean
- them up.
-
- 2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
- -width options to labels, buttons, check buttons, menu buttons, and radio
- buttons. This means that (a) size can be controlled better, (b) bitmaps
- can be displayed in any buttons, (c) the position of the text within the
- button can be controlled, and (d) a button can be made to display the value
- of a variable, continuously updating itself. Also changed -selector option
- so that if it's specified as an empty string then no selector is drawn
- for the button.
-
- 2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
- added new -bitmap option for entries.
-
- 2/26/92 (bug fix) "after" command, when invoked with just one argument,
- called Tk_Sleep rather than registering a timer handler and looping on
- Tk_DoOneEvent. As a result, it caused the application to become non-
- responsive to X events during the sleep. Changed to use a Tk_DoOneEvent
- loop so that it is responsive.
-
- 2/26/92 (bug fix) Tk's main program didn't map the main window until
- after the startup script returned. Changed to map the window as a
- do-when-idle handler, so that scripts can cause the window to be
- mapped immediately with a call to "update" or "after".
-
- 2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
- was originally mapped: window got mapped anyway. Fixed so that the
- window doesn't get mapped as long as it's withdrawn.
-
- 2/29/92 (new feature) Can use "focus none" to clear input focus.
-
- 2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
- properly. These weren't being generated previously.
-
- 2/29/92 (bug fix) Fixed entries so that newline characters can be properly
- displayed (as `\x0a'). Had to change interface to TkDisplayChars in order
- to do this (added flags argument).
-
- 2/29/92 (bug fix) Change Tk not to update size and position of top-level
- windows directly during calls like Tk_ResizeWindow. Instead, wait until
- actual event is received. This makes updates happen at same time as
- callbacks.
-
- 3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
- pressed at a time when there was no associated menu for the button.
-
- 3/6/92 (new feature) Added Tk script library directory with official
- Tk initialization file "tk.tcl". Other procedures used by Tk are in
- other files. Tk procedures and variables all have names starting
- with "tk_". Also added Wish startup script "wish.tcl", which sources
- both the Tk and Tcl startup scripts. This means that things like
- auto-loading and abbreviation expansion are now available in wish.
- Added new variables tk_library, tk_priv, and tk_version.
-
- 3/6/92 (new feature) It's now possible to set bindings for whole
- classes by using the class name in the bind command. For example,
- "bind Button <Enter> {puts stdout Hi!}" will cause a message to be
- printed whenever any mouse button is entered. Can also use "all"
- to set bindings for all widgets. Widget-specific bindings override
- class bindings which override "all" bindings.
-
- 3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
- eliminate all hard-wired behavior. Instead, default behavior is set
- by class bindings in tk.tcl. Also set up class bindings for menus,
- menubuttons, and entries, which previously had no default behavior at
- all. Scrollbars and scales still have hard-wired behavior that can't
- be overridden.
-
- 3/7/92 (look-and-feel change) Changed listboxes and entries and menus
- to use button 2 for scanning instead of button 3. This is more consistent
- with the official Motif use of button 2 for dragging.
-
- 3/10/92 (new features) Added more options to "winfo" command: screencells,
- screendepth, screenmmheight, screenmmwidth, and screenvisual.
-
- 3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
- to see whether window was mapped before sharing events with it.
-
- 3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
- geometry-management procedures, causing core-dumps when menu buttons
- had their border widths changed.
-
- 3/16/92 (bug fix) Menus were setting their geometry directory rather
- than using Tk_GeometryRequest mechanism.
-
- 3/17/92 (new feature) Added -cursor option to all widgets to set the
- active cursor for the widget. Also added TK_CONFIG_ACTIVE_CURSOR
- configure type.
-
- 3/18/92 (new feature) Implemented generalized screen coordinates to
- allow resolution-independent specification in many cases (but pixel-
- based coordinates are still OK). Added Tk_GetScreenMM(),
- Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
- TK_CONFIG_PIXELS. Changed widgets to use this new configure types
- wherever possible (a few of the more complex cases still haven't
- been taken care of yet). Added "pixels" and "fpixels" options to
- "winfo" command.
-
- 3/18/92 (new feature) First cut at canvas widgets is done and part of
- the official Tk now. Canvases display text and structured graphics,
- and allow you to bind commands to events related to the text and
- graphics.
-
- 3/21/92 (new feature) Added new "place" command. It implements a
- new geometry manager that provides fixed placement, rubber-sheet
- placement, and combinations of the two. Eliminated the commands
- "move", "resize", and "map" that were provided by main.c but never
- officially supported; the placer provides all of this functionality.
-
- 3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
- occasionally not being given the right size. The problem occurred
- when a string of resizes happened all in a row (such as deleting all
- the windows in an application and then recreating them).
-
- 3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
- "winfo containing" command. These may be used to locate the window
- containing a given point.
-
- 3/28/92 (new feature) Added "-exportselection" option to listboxes,
- so that listbox selection need not necessarily be the X selection.
-
- 4/12/92 (bug fix) Changed menu buttons to store name of menubutton
- in the associated variable, rather than the name of the menu. This
- is necessary in order to allow several menu buttons to share the
- same menu.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
- removing the first error record from the error list.
-
- 4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
- event specifications from being processed correctly: the "1" was
- treated as a button name rather than a keysym.
-
- 4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
- procedures.
-
- 4/18/92 (new feature) Major revision to listboxes. Can now scroll and
- scan in both x and y, plus -exportselection option allows selection not
- to be exported. The "view" widget command has been replaced by "xview"
- and "yview", and the "scan" widget command has a new syntax.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 4/18/92 (new feature) Added -exportselection option to entries, so you
- can select whether you want the entry selection to be the X selection
- or not.
-
- 4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
- plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
- and TK_CONFIG_OPTION_SPECIFIED. Several other new types, such as
- TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
-
- 4/29/92 (bug fix) Changed "-selector" default for menus to have separate
- values for mono and color.
-
- 4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
- bogus scroll commands (last index less than first).
-
- 4/30/92 (reorganization) Moved demos directory to "library/demos".
-
- ---------------------- Release 2.0, 5/1/92 -------------------------
-
- 5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
- redisplays after repeated insertions. Also reduced number of invocations
- of scrollbar commands.
-
- 5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
- flag; it isn't needed and it causes problems on some systems.
-
- 5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
-
- 5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
- attempts to print non-existent bindings.
-
- 5/11/92 (bug fix) Maximum name length for applications (name used in
- "send" commands) was too short (only 20); increased to 1000. Also
- fixed bug related to over-long names that caused core dumps.
-
- 5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
- group was deleted as a side-effect of a shared event.
-
- 5/13/92 (bug fix) Various initialization and core leak problems in
- tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
- tkCanvLine.c, tkListbox.c, tkEntry.c.
-
- 5/13/92 (bug fix) Empty entries could be scanned off the left edge,
- displaying a garbage character.
-
- 5/13/92 (bug fix) Fixed a few problems with window manager interactions,
- such as tendency for windows to spontaneously shrink in size. By no
- means are all of the problems fixed, though.
-
- 5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
- invoke geometry manager unless requested size has changed.
-
- ---------------------- Release 2.1, 5/14/92 -------------------------
-
- 5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
- plus added "idletasks" option to "update" command. Tk_DoWhenIdle arguments
- look different now, but the change should be upward-compatible.
-
- 5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
- to the "bind" command. For some reason they weren't supported previously.
-
- 5/17/92 (new feature) Added "tkwait" command.
-
- 5/17/92 (new feature) Added "grab" command.
-
- 5/17/92 (new feature) Added "-width" option to messages. Also changed
- messages to use the computed (i.e. desired) line length when displaying,
- not the actual width of the window.
-
- 5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
- of improving window manager interactions. Now there won't be more than
- one configure request outstanding to the wm at a time.
-
- 5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
- or scaled correctly.
-
- 5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
- (wrong windowUnits was passed to scrollbars).
-
- 5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
- leaves window with button down. Also changed redisplay to double-buffer
- for smoother redraws.
-
- 5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
-
- 5/22/92 (new feature) Buttons can now be disabled using the "-state" and
- "-disabledforeground configuration options. The "activate" and "deactivate"
- widget commands for buttons are now obsolete and will go away soon.
- Please change Tcl scripts not to use them.
-
- 5/23/92 (new feature) Entries can now be disabled using the "-state"
- config option. Also improved class bindings for entries to keep the
- cursor visible in the window when operations occur. Also made slight
- improvements in the way redisplay is done.
-
- 5/23/92 (new feature) Added "-textvariable" option to entries so that
- the text in an entry can be tied to the value of a global variable in
- a fashion similar to buttons.
-
- 5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
- messages.
-
- 5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
- to menubuttons.
-
- 5/28/92 (feature change) Changed "-width" and "-height" options on
- all flavors of buttons and menubuttons so that they are orthogonal
- to "-padx" and "-pady". It used to be that -width overrode -padx
- (no padding). Now they accumulate.
-
- 5/29/92 (new feature) Added "-disabledforeground" option to menus and
- all flavors of buttons (can specify color for disabled things rather
- than just using stipple to gray out).
-
- 5/29/92 (new features) Added many new options to menu entries:
- -activebackground, -background, -font, -state, -underline. The
- "disable" and "enable" widget commands for menus are now obsolete
- and will go away soon. Please change Tcl scripts not to use them.
-
- 5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
- command.
-
- 5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
- can be used to change listbox behavior so that only a single item is
- selected at once.
-
- 6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
- "bind" command.
-
- 6/3/92 (new feature) Added "winfo toplevel" command.
-
- 6/3/92 (new feature) Made several changes for greater Motif compliance,
- including:
- - menu retention if you click and release in the menu button,
- - keyboard traversal of menus (see traversal.man)
- - no widget flashing if you set $tk_strictMotif to 1
-
- 6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
- binding could get reallocated while the command was being executed (e.g.
- bindings that delete or change themselves).
-
- 6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
- can cause core dumps for fonts that don't enough information to compute
- tab widths.
-
- 6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
- related events to be reported both to the correct window and its parent.
-
- 7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
- StaticGray or StaticColor.
-
- 7/15/92 (new feature) Text widgets now exist. They display any number of
- lines of text with a variety of display formats, and include hypertext
- facilities. See the manual page for details.
-
- 7/20/92 (bug fix) If a top-level window was put in the iconic state to
- begin with, it could be deiconified with "wm deiconify .foo" until it had
- first been deiconified by hand from the window manager. Tk was getting
- confused and thought the window was mapped when it wasn't.
-
- 7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
- dimensions. Round up to at least one pixel.
-
- 7/29/92 (new features) Major upgrade to canvases:
- - new item types: arc, window, bitmap
- - added Bezier spline support for lines and polygons
- - rectangles and ovals now center their outlines on the shape,
- rather than drawing them entirely inside the shape
- - new "coords" and "bbox" widget commands
- - new "-tags" option for all item types.
- - new "-confine" option to prevent scrolling off edge of canvas.
-
- 8/6/92 (new feature) Added "-width" and "-height" options to frames.
- The "-geometry" option is now obsolete and should be removed from Tcl
- scripts: it may go away in the future.
-
- 8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
- the option name where they should have included its value.
-
- ---------------------- Release 2.2, 8/7/92 -------------------------
-
- 8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
- it passes to XCopyArea.
-
- 8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
- dumps when text views changed (e.g. typing return on last line of screen).
-
- 8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
- keyboard to traverse over separator menu entries.
-
- 8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
- maximum # of open files.
-
- 8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
- changes. They also weren't recentering canvases on window size changes.
-
- 8/10/92 (bug fix) There were still a few places where commands were being
- invoked at local level instead of global level (e.g. commands associated
- with buttons and menu entries).
-
- 8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
- all keys (i.e. <Shift-Tab> was treated the same as <Tab>). Modified to
- allow explicit request for shift modifier, like <Shift-Tab>.
-
- 8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
- explicitly.
-
- 8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
- the bounding boxes for arcs, in order to make sure that proper redisplay
- occurs when arcs are moved (little turds were getting left behind).
-
- 8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
- area is off the screen. Also, only do a background clear for the portion
- of the redraw area that is on-screen. Also, reduced size of off-screen
- pixmaps used for redisplaying, which speeds up redisplay in some cases.
-
- 8/19/92 (bug fix) Canvases that were taller than wide were not being
- redisplayed properly.
-
- 8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
- all X events (useful for tracing, watching non-Tk windows, etc.).
-
- 8/21/92 (bug fix) Widgets weren't always being notified when they got
- the focus back again (the problem had to do with grabs and menus in
- particular).
-
- 8/21/92 (new feature) Added "-state" option to scale widgets.
-
- 8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
- to occur in bitmap file names.
-
- ---------------------- Release 2.3, 8/24/92 -------------------------
-
- 8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
- for menubuttons were being lost.
-
- 8/27/92 (bug fix) Entries were selecting last character when a B1-drag
- occurred past the right edge of the text.
-
- 8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
- press caused the canvas state to lock up so that it didn't select a
- new current item.
-
- 9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
- are out of range; now it just rounds them off to the nearest existing
- entry.
-
- 9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
- invoking "yview -pickplace" widget command on texts that are too small
- to hold any lines at all.
-
- 9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
- when adding tags to non-existent lines.
-
- 9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
- color (i.e. couldn't make them transparent).
-
- 9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
- extensions. Added "install" target to Makefile to suggest how Tk should
- be installed.
-
- 9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
- screen 0 rather than using DefaultRootWindow. DefaultRootWindow doesn't
- always go to screen 0 on displays with multiple screens, which can result
- in send's not being possible between the screens.
-
- 9/18/92 (new feature) Added three new options to "wm" command: "protocol",
- "client", and "command". These provide support for window manager protocols
- such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
- WM_CLIENT_MACHINE and WM_COMMAND properties.
-
- 9/30/92 (new feature) Implemented color model support, including
- "tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
- procedures. These allow you to force mono operation even on a color
- display. Also changed color allocation not to give errors when colors
- run out, but just to switch to a mono color model.
-
- 10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
- during text deletion.
-
- 10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
- colors. This is needed to work around improper reference count management
- for colormap entries under X11/NeWS.
-
- 10/7/92 (new feature) Added support for different visual types, including
- procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
- Tk_Visual, Tk_Depth, and Tk_Colormap. The code for this was contributed
- by Paul Mackerras.
-
- 10/7/92 (new feature) Added Tk_IsTopLevel macro.
-
- 10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
- cascaded children not to track mouse motion correctly (the cascade
- switched in response to mouse motions within the cascaded child).
-
- 10/12/92 (new feature) Major changes to focus handling:
- (a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
- and Leave, so it will work better with explicit-focus-model window
- managers (e.g. mwm in default mode).
- (b) Tk generates FocusIn and FocusOut events for the focus window now.
- The old procedural interface (via Tk_CreateFocusHandler) is obsolete
- and is no longer used inside Tk. It is still supported for
- compatibility, but won't be for long. You should change your code
- to use FocusIn and FocusOut events instead.
- (c) The model for FocusIn and FocusOut events is different than the
- one described in Xlib documentation. See the "focus" manual entry
- for details.
- (d) If there is no input focus then keyboard events are discarded. They
- used to be directed to the mouse pointer window, although this wasn't
- documented. The focus now defaults to the root window.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 10/15/92 (bug fix) Fixed text items in canvases where they didn't
- display the insertion cursor if the item had no characters in it.
-
- 10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
- BadWindow X protocol errors when retrieving the selection. Tk wasn't
- making sure that a window existed before using it to retrieve the
- selection.
-
- 10/30/92 (feature change) Changed canvases so that if the scroll region
- is smaller than the window and -confine is on, the scroll region isn't
- forced to be centered in the window; it can be anywhere that meets the
- confinement restrictions.
-
- 11/2/92 (new feature) Added "winfo exists" command.
-
- 11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
- when-idle handler is created as a side-effect of another when-idle
- handler, the new handler isn't invoked until Tk has first checked
- for other events to process.
-
- 11/6/92 (bug fixes, new features) Major overhaul of window manager
- interface:
- (a) Tk should now work with virtual-root window managers;
- (b) windows will now place more accurately on the screen and stay where
- they're supposed to;
- (c) size changes handled more reliably;
- (d) code now works robustly in the face of withdrawals followed
- immediately by deiconifications.
- (e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
- vrootx, vrooty, vrootwidth, vrootheight.
- (f) Added "overrideredirect" option to "wm".
- (g) Fixed bug where change in width-only via "wm geom" didn't always work
- (min and max window sizes weren't being set properly for the wm).
-
- 11/6/92 (bug fixes) Modified menus so that they work correctly with
- virtual root window managers. Also fixed bug where menus didn't move
- along with their associated windows, so that the menu popped up at
- the old location of the window rather than its new location.
-
- 11/9/92 (new constraint) Made it illegal to give windows names that
- start with upper-case letters, since such names will goof up the
- option database by appearing to be classes rather than names.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 11/10/92 (new feature) Added Postscript output to canvases.
-
- 11/13/92 (bug fix) Changed default for maximum size passed to window
- manager from 1000000 (which causes some wm's to make windows too large
- when "maximized") to the size of the display.
-
- 11/14/92 (feature change) Major overhaul of menubuttons and pull-down
- menus. Removed event-sharing code, including Tk_ShareEvents and
- Tk_UnshareEvents. The -variable option for menubuttons has been
- removed,and the "post" and "unpost" widget commands for menubuttons
- no longer exist. The "post" widget command for menus no longer
- allows a group option. The procedure tk_menus has been replaced
- with a new procedure, tk_menuBar, which has a slightly different
- interface.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 11/20/92 (new features, feature changes) Major overhaul of grab
- mechanism to produce more correct event streams. Also changed Tcl
- commands to require explicit window for grab releases (makes it
- possible for grabs to work on multiple displays simultaneously).
- The old "grab none" command no longer exists, but new options
- have been added: "current", "release", "set", and "status".
- *** POTENTIAL INCOMPATIBILITY ***
-
- 11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
- directory location, if it is defined. Otherwise fall back on usual
- compiled-in value.
-
- 11/25/92 (bug fix) "wm grid" command was using wrong window.
-
- 11/29/92 (bug fix) Fixed core dump that occurred when trying to use
- placer on top-level windows: return error instead.
-
- 11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
- on whose behalf selection is being retrieved actually exists.
-
- 12/3/92 (new feature) Added support for Mode_switch key to support the
- full ISO character set. Also added event handlers for MappingNotify
- events so that Tk updates itself in response to keycode and modifier
- changes.
-
- 12/6/92 (bug fix) Ignore recursive attempts to destroy window.
-
- 12/9/92 (new demos) Added "tcolor" and "rmt" demos.
-
- 12/10/92 (new features) Added "yposition" widget command for menus,
- changed "delete" widget command to take an optional second index,
- and changed -command option for cascade entries so that it is
- invoked when the entry is activated rather than when it is invoked.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/12/92 (implementation change) Changed the procedures Tk_FreeBitmap,
- Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
- Tk_FreeGC to require an addition Display argument. This is needed for
- Tk to function correctly when an application has windows on multiple
- displays.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/12/92 (new feature) Started creating a test suite. Right now it
- only has a few tests.
-
- 12/12/92 (new feature) Modified the packer so that a window can be
- packed in descendants of its parent (used to be restricted to the
- parent alone). This makes it possible to hide extra windows used
- for geometry management. Also, can use generalized screen distances
- in the "pack" command.
-
- 12/16/92 (feature change) Boolean options such as -exportselection now
- print as 0/1 rather than true/false (both the default and current values
- print this way). This makes it easier to use these values in expressions.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
- been renamed "Radiobutton" and "Checkbutton" for consistency. From now
- on widget class names will have exactly one capital letter.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/16/92 (new feature) Added -setgrid option to listboxes.
-
- 12/16/92 (new feature) The "destroy" command, and the "delete" widget
- command for canvases, now accept any number of arguments, including
- zero.
-
- 12/16/92 (new feature) Changed internal TkBindError procedure to
- Tk_BackgroundError and exported it to Tk clients.
-
- 12/16/92 (option name change) Changed the place command's "dependents"
- option to "slaves" for better consistency with documentation.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/16/92 (name changes) Renamed the "cursor*" options in entries and
- canvases to "insert*". Also renamed the "cursor" index to "insert" and
- the "cursor" widget command to "icursor". This was done to avoid
- confusion between the mouse cursor and the insertion cursor.
- *** POTENTIAL INCOMPATIBILITY ***
-
- ---------------------- Release 3.0, 12/17/92 -------------------------
-
- 12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
- if a <LeaveNotify> binding deleted the current item.
-
- 12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
- Also, tkWm.c wasn't properly setting WM_CLASS property on application
- startup.
-
- 12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
- Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
- "display" argument.
-
- 12/18/92 (missing documentation) Added documentation for the canvas
- "postscript" command, which was missing in the 3.0 release.
-
- 12/21/92 (bug fixes) There were lots of problems with the new installation
- targets in the Makefiles, such as using "cp -f" and not installing
- prolog.ps. Made several other miscellaneous improvements to Makefile.
-
- 12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
- after coordinate changes made with the "coords" widget command.
-
- 12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
- ever deiconify it again.
-
- 12/21/92 (bug fix) Double-button event sequences didn't always trigger
- properly when grabs were in effect.
-
- 12/22/92 (bug fix) The packer didn't display any top or bottom windows
- after a left or right expanded window, and vice versa. Also made the
- distribution of space among expanded windows more even.
-
- 12/28/92 (new features) Several improvements to selection:
- (a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
- (b) Added "clear" and "own" options to "selection" command, extended
- "handle" option to delete handlers.
- (c) Error returns from "selection handle" scripts are now turned into
- selection retrieval errors ("no such selection") rather than an
- empty selection.
- (d) Tk responds automatically for targets APPLICATION (name of application,
- so you can "send" to it) and WINDOW_NAME (name of window within
- application.
- (e) Added test file "select.test" to test suite.
-
- 12/28/92 (bug fix) Fixed problem with flashing menus that occurred
- because menu.tcl was willing to unpost and then immediately repost
- the same menu.
-
- 1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
- of ==.
-
- 1/21/93 (bug fix) Changed many widgets to eliminate use of
- DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
- and colormaps for the actual windows instead. Also changed to
- inherit colormaps and windows from parent by default.
-
- 1/21/93 (new features) Added new winfo options "cells", "depth", and
- "visual".
-
- 1/23/93 (bug fix) Fixed problem with text display that could result
- in negative XCopyArea heights being sent to X server. This causes some
- servers (e.g. some versions of OpenWindows) to crash.
-
- 1/25/93 (new feature) Added -postcommand option to menus, so that menus
- can be reconfigured before each posting.
-
- 1/29/93 (feature change) Changed %X and %Y in bindings so that they
- refer to the virtual root rather than the true root. Although
- potentially incompatible, this change should almost always "do the
- right thing".
- *** POTENTIAL INCOMPATIBILITY ***
-
- 1/31/93 (bug fix) Changed "send" code to grab server while updating
- the registry property (before this fix, two programs could allocate
- the same interpreter name if they started up simultaneously). In
- order to make this fix I had to change the code for reclaiming
- names of dead interpreters in a way that sometimes allows dead
- interpreters to persist in the registry.
-
- 2/1/93 (feature change) Changed entries to allow leftmost "visible"
- character to be the end of the text (i.e. no characters actually visible).
- This is needed so that the cursor can be displayed even if the last
- actual character is too wide to fit in the window.
-
- 2/3/93 (bug fix) Fixed two bugs in tkFocus.c: (a) FocusIn events
- were getting lost in some cases because the focus window hadn't been
- created yet (e.g. new top-level window pops up underneath the mouse);
- (b) Tk was accidentally triggering FocusOut events when the mouse
- moved from a top-level window to one of its children.
-
- 2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
- it easier to wait for a new window to appear on the screen.
-
- ---------------------- Release 3.1, 2/5/93 -------------------------
-
- 2/10/93 (installation improvements) Makefile improvements: added RANLIB
- variable for easier Sys-V installation, changed to use INCLUDE_DIR
- properly, and added SHELL variable for SGI systems.
-
- ---------------------- Release 3.2, 2/11/93 -------------------------
-
- 2/11/93 (new feature) Added "wm state" command, and improved wm so that
- the right thing will happen if you invoke "wm iconify" when a window is
- withdrawn.
-
- 2/14/93 (bug fix) When -colormap option was used in generating Postscript
- for canvases, Tk didn't add an extra space after the color command.
-
- 2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
- which will use the definition of EXTERN from tcl.h and work correctly
- in C++ programs.
-
- 2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
- canvas items when the items were deleted. As a result, they could
- suddenly re-appear for new items if the new items were allocated a
- record at the same addresses as the old ones.
-
- 2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
- *without* responding to events when it is invoked with just one argument;
- can always use tkwait plus after with additional arguments to achieve
- the effect of responding to events.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
- set correctly for new top-level windows on different screens than their
- parents (the bug results in X protocol errors: "invalid Colormap
- parameter").
-
- 2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
- "#!/usr/local/bin/wish" to reflect new location of binary.
-
- 2/22/93 (new feature) Added new reliefs "groove" and "ridge".
-
- 2/25/93 (new feature) Added new built-in bitmaps: "error", "hourglass",
- "info", "question", "questhead", and "warning". Also added new demo in
- "widget" to display all of these (under the Miscellaneous menu).
-
- 2/25/93 (improved implementation) Changed DrawText procedure in
- prolog for outputting Postscript from canvases to use stringwidth
- instead of charpath+pathbbox: avoids limitcheck problems with long
- strings, and also properly includes space characters in calculation.
-
- 2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
- menu traversal to mis-behave when menu had no entries.
-
- 2/26/93 (new feature) Added "wm frame" command.
-
- 3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
- pull-down menus were sometimes unresponsive. Modified tk.tcl to ignore
- the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
- release simulated button grabs correctly.
-
- 3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
- which caused text to be displayed at the wrong horizontal position in
- several places (labels/buttons, listboxes, canvas text, scales). This
- change will cause slight changes in the way certain widgets are
- displayed.
-
- 3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
- zero values in entryPtr->avgWidth.
-
- 3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
- Changed to use virtual-root coordinates when a virtual-root window
- manager is being used. Before this fix, "winfo containing" didn't
- return the correct window under virtual-root window managers.
-
- 3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
- manager over position of window; it just takes what the window manager
- gives it.
-
- 3/21/93 (new feature) Changed menus to display cascade entries with
- standard Motif arrows at right side.a
-
- 3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
- get trashed with the integer value 1.
-
- 3/22/93 (bug fix) Canvas text didn't print correctly if it contained
- an open paren (or other special character) immediately followed by
- an octal digit.
-
- 3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
- where two or more groups of lines both got taller at the same time
- (e.g. from tag changes), causing two separate bit copies where the
- first bit copy's target area overlapped the source area for
- the second bit copy.
-
- 4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
- if that's supported by the Postscript interpreter. Also added workaround
- for bug in NeWSprint related to stipple fills.
-
- 4/1/93 (bug fixes) Made various changes to focusing and grabs to
- eliminate extraneous focus events and generally improve behavior.
-
- 4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
- manager to map or reconfigure a window: this led to deadlock in some
- situations, such as creating a new top-level window with a grab held.
-
- 4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
- across the screen in some situations. Also fixed problem where rapid
- posting and unposting of cascaded submenus (or menus?) could cause Tk
- to become confused about whether or not a window is mapped (added
- TkWmUnmapWindow procedure to make top-level unmaps synchronous).
-
- 4/24/93 (feature change) Changed the "after" command to allow times
- less than or equal to 0, and to use 0 whenever they occur.
-
- 4/26/93 (new feature) Implemented security check for "send" as proposed
- by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
- access control is enabled and (b) the list of authorized hosts is
- empty. In other words, you have to use xauth to use send. This feature
- can be disabled by setting the TK_NO_SECURITY flag at compile-time.
-
- 5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
- real values as Tcl results. This potentially allows higher precision.
- Switched to use %.15g whenever printing reals in Postscript files.
- However, the change Tcl_PrintDouble causes incompatibilities. For
- now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
- Tk 4.0 will delete the macro, and you can also delete it now if you
- want the better (but incompatible) behavior.
-
- 5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
- closeness calculations for canvas oval items.
-
- 5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
- value in tkBind.c, which could cause incorrect %-substitutions in event
- bindings in a few exotic cases.
-
- 6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
- Makefile format changed, and Tcl is no longer automatically included
- in Tk releases.
-
- 6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
- during redisplay of canvases.
-
- 6/9/93 (feature improvement) Modified default bindings for entries to
- keep one character visible to the left of the cursor during backspaces.
-
- 6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
- future patch releases, and also added tk_patchLevel variable to make the
- patch level available in scripts.
-
- 6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
- very large scale values.
-
- 6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
- the "coords" widget command was used to add one new coordinate.
-
- 6/26/93 (bug fix) Changed canvases to handle large stipple patterns
- gracefully (stipples used to jump around during redisplay and lose
- coherency).
-
- 7/1/93 (syntax change, new feature) Implemented the new packer syntax
- as described in the book. For now the old syntax will continue to be
- supported too. Converting over is straightforward except (a) use
- "-anchor" instead of "frame", and (b) padding is different (separate
- internal and external padding, plus pad amounts are *on each side*
- instead of total). Also added "pack propagate" command for keeping
- the packer from setting the master's requested size.
-
- 7/1/93 Changed copyright notices. The effect is the same as with the
- old notices, but the new notices more clearly disclaim liability.
-
- 7/7/93 (new feature) Added support for window stacking order. Windows
- will now stack in the order created (most recent on top), plus "raise"
- and "lower" commands may be used to restack (Tk_RestackWindow procedure
- is available from C level).
-
- 7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
- call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
- application name, and added default Tcl_AppInit procedure for wish.
- Also added tkTest.c to hold C code for testing.
-
- 7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
- up properly before exiting. It replaces the Tcl "exit" command, and
- can be used in place of "destroy .".
-
- 7/9/93 (new features) Added tk_dialog library procedure that creates
- dialogs with a bitmap, message, and any number of buttons. Also changed
- default tkerror procedure to use tk_dialog plus offer the user a chance
- to see a Tcl stack trace.
-
- -------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
-
- 7/12/93 (configuration changes) Eliminated leading blank line in
- configure script; provided separate targets in Makefile for installing
- binary and non-binary information; fixed -lnsl and -lsocket handling
- in configure; added autoconf support for fd_set type; check for various
- typedefs like mode_t and size_t, and provide substitutes if they
- don't exist; don't include tkAppInit.o in libtk.a; try to locate the
- X includes and library in all of the standard places for various systems.
-
- 7/14/93 (new feature) Modified tkMain.c so that it stores the value
- of the -display command-line option into the DISPLAY environment
- variable, if it is specified.
-
- 7/15/93 (feature removal) Removed auto-initialization feature from
- Tk_ConfigureWidget, so that you must once again initialize all fields
- of a widget record before calling Tk_ConfigureWidget. This restores
- the behavior back to what it was in Tk 3.2.
-
- 7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
- unless it is explicitly requested in a binding. Without this fix,
- buttons and menus and other things didn't work if the Caps Lock key
- was active.
-
- -------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
-
- 7/21/93 (new feature) Change "make install" so that it will modify the
- #! lines on demo scripts to reflect the place where the wish binary
- is installed.
-
- 7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
- main window associated with a Tcl interpreter. This is intended for
- use by Tcl_AppInit and other initialization procedures.
-
- 7/24/93 (configuration improvements) Changed configure script not to
- omplain about "fd_set" missing if it's defined in <sys/select.h>.
-
- 7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
- sometimes occurring when several top-level windows got created
- at the same time, due to wrong choice of sibling when stacking
- windows.
-
- 8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
- to wish main program: makes prompts user-settable.
-
- 8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
- because the Shift key has to be pressed before D. Modified Tk to
- ignore extraneous keypresses if they are for modifier keys.
-
- 8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
- procedures to use it and Tcl_Init. Added support for .wishrc file.
-
- 8/28/93 (new feature) The main window is now a legitimate toplevel
- widget.
-
- -------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
-
- 9/2/93 (bug fix) The packer wasn't always relaying out a master after
- changes to some of the configuration options of its slaves.
-
- 9/2/93 (bug fix) The binding mechanism made it impossible for patterns
- like <Double-ButtonRelease-1> to ever match.
-
- 9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
- if Postscript is generated but no -bitmap option has been specified.
-
- 9/4/93 (enhancement) Slight improvements to menu traversal: set menu
- traversal bindings for menubar window in tk_menuBar, plus trigger
- traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
-
- 9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
- prevent events from triggering bindings.
-
- 9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
- property from root window of screen 0, rather than using default
- screen.
-
- 9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
- for themselves. Fixed this and changed the size computation to match
- what's done for buttons and texts.
-
- 9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
- instead always invoke "exit" Tcl command so that application can redefine
- the command to do additional cleanup.
-
- -------------------- Release 3.3, 9/29/93 -------------------------
-
- 9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
-
- 9/30/93 (bug fix) Binding event sequences such as <Right> were being
- misprinted as ASCII characters such as "S".
-
- 10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
- got unmapped, which caused problems for window items whose windows weren't
- descendants of the canvas (they got left on the screen).
-
- 10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
- to have a special undocumented meaning (fd was display); eliminated this
- special interpretation.
-
- 10/7/93 (configuration change) Eliminated dependency of tkMain.c on
- tkInt.h and tkConfig.h, so that it's easier for people to copy the file
- out of the source directory to make modified versions.
-
- 10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
- wasn't being set properly, so options based on the application class
- weren't triggering. Fixed by adding new argument to Tk_CreateMainWindow.
-
- 10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
- cause core dumps due to halfwayLinePtr not getting set correctly.
-
- 10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
- display N characters in an entry with "-width N" (tended to scroll the
- entry so that only N-1 characters were visible at once).
-
- 10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
- weren't overriding xmkmf like they were supposed to.
-
- 10/23/93 (new feature) Allow negative scale factors in canvas "scale"
- widget command.
-
- 10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
- window was deleted, causing core-dumps in some cases.
-
- 10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
- the "anchor" mark exists.
-
- 10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
- the scroll command modifies the text.
-
- 11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
- invoked at display time, not when the window is re-layed out. This
- eliminated various core dumps that could occur if -yscrollcommand modified
- the text.
-
- -------------------- Release 3.4, 11/04/93 -------------------------
-
- Note: there is no 3.5 release. It was flawed and was thus withdrawn
- shortly after it was released.
-
- 11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
- R_OK in call to "access". Changed to eliminate call to "access".
-
- -------------------- Release 3.6, 11/26/93 -------------------------
-
- 11/10/93 (bug fix) Packer and placer didn't always reposition a window
- correctly if it was managed inside a neice or lower descendant (using
- "-in" option) and the neice's parent moved.
-
- 11/24/93 (bug fix) Fixed time problem in selection (retrievals could
- fail if retriever hasn't received any X events since selection was
- made, so that time of retrieval appears to be older than time of
- selection). Selection code is now much less picky about times, both
- on retrieving and supplying sides.
-
- 12/2/93 (new feature) Changed arrow-head drawing code for canvas
- lines to draw a 0-width outline in addition to filling the area:
- this produces much nicer, more symmetrical displays.
-
- 12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
- when its state was internally inconsistent, which could cause
- core dumps in some situations (e.g. if tkerror used the same color
- that caused colors to run out). Changed notification to occur
- as a when-idle handler.
-
- 12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
- in the list of grabbed events, so pointer motion couldn't be tracked
- outside the grabbing application.
-
- 12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
- when they only contained two points.
-
- 12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
- errors during window creation could cause Destroy events to be generated
- for a window that was never completely initialized.
-
- 12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
- dumps at line 1467 under exmh. The exact situation is that a text
- widget was being redisplayed at a time when it had a -yscrollcommand
- option but hadn't yet been mapped onto the screen.
-
- 12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
- with non-default visuals still inherited border pixmap from parent (root),
- which could cause visual clash and X error.
-
- 12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
- error in the information passed to scroll commands.
-
- 12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
- some situations if a master with siblings packed "-in" it was deleted.
-
- 12/18/93 (bug fix) Added "compat" directory to distribution, since it's
- referenced by tkConfig.h on some systems.
-
- 12/18/93 (performance improvement) Improved performance of appending to
- a listbox, so that inserting N items doesn't take N**2 time.
-
- 12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
- for the oval to stick out past the outline.
-
- 1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
- that they won't run out in long running applications. There are three
- new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
- Modified all Tk code to use these procedures, so wish applications should
- now be able to run forever without running out of identifiers.
-
- 1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
- cursors, which caused memory leaks in programs that changed cursors
- frequently.
-
- 1/21/94 (bug fix) Fixed bug in scales that caused them to loop
- infinitely drawing tick-marks when -from and -to were the same.
-
- 2/2/94 (bug fix) Fixed problem where messages that contained tabs
- didn't always compute the correct size, so that text spilled off
- the right edge. The fix adds an extra "tabOrigin" parameter to
- the internal procedures TkMeasureChars, TkDisplayChars, and
- TkUnderlineChars.
-
- 2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
- it to read past the initialized part of dispPtr->modKeyCodes.
-
- 2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
- that the "current" character got stuck if a grab occurred while a
- mouse button was down. It would get unstuck until after the
- next button press and release.
-
- 2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
- canvases) so that it correctly prints all of the characters in the
- ISO Latin-1 character set.
-
- 2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
- result across the execution of binding scripts. Otherwise if an event
- triggers in the middle of some other script (e.g. a destroy event during
- window creation, because there was an error in the creation command),
- the intepreter's result gets lost.
-
- 2/19/94 (bug fix) Fixed bug in dealing with results of sent command
- that could cause them to get lost in some situations.
-
- 2/21/94 (bug fix) Don't let user close a dialog window created by
- tk_dialog, since this would cause tk_dialog to hang: force the user
- to select one of the dialog's buttons.
-
- 2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
- correctly handle changes in the number of points (via "coords"
- widget command).
-
- 2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
- because they overflowed the 64-KB limit on strings in Postscript.
- Changed canvas printing to split up large bitmaps into mutliple
- smaller ones for printing.
-
- 2/25/94 (bug fix) The "." window was being set up with -width
- and -height options, which interfered with geometry management (any
- configuration change on "." causes the window to change size to
- 200x200, then change back again).
-
- 2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
- event handler for a window deleted the window's parent.
-
- 3/3/94 (new features) Changes to binding mechanism:
- - The modifiers for "Alt", "Meta", and "M" are now computed by
- examining the modifier map, rather than being hardwired to
- M2, M1, and M1.
- - When processing events, one script is invoked for each object
- in the list passed to Tk_BindEvent, rather than stopping as
- soon as a script is invoked for some object. The "break" and
- "continue" commands can be used within a script to abort all
- scripts for the event or the current one.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "bindtags" command so that new binding groups can be
- defined for widgets and the evaluation order can be changed.
- - When matching events to bindings, extra modifiers are now ignored,
- as if "Any" were specified for every event. The "Any" modifier
- is still recognized, but it is ignored and is deprecated.
- *** POTENTIAL INCOMPATIBILITY ***
- - In % sequences that print window identifiers (e.g. %a and %S), print
- in hexadecimal rather than decimal, for consistence with "winfo id".
- *** POTENTIAL INCOMPATIBILITY ***
- - The "bind" command no longer supports the event types CirculateRequest,
- ConfigureRequest, MapRequest, or ResizeRequest. These event types
- are somewhat dangerous, and they never worked anyway.
-
- 3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
- It appears that this command never really worked at all, but it should
- work OK now.
-
- 3/14/94 (feature changes) Removed several obsolete features:
- - Eliminated "enable" and "disable" widget commands for menus.
- *** POTENTIAL INCOMPATIBILITY ***
- - Eliminated "activate" and "deactivate" widget commands for buttons,
- checkbuttons, radiobuttons, and menubuttons.
- *** POTENTIAL INCOMPATIBILITY ***
- - Removed -geometry option for frames and toplevels: it causes
- problems when .Xdefaults files contain entries like
- "*geometry: +0+0". Must use -width and -height instead.
- *** POTENTIAL INCOMPATIBILITY ***
- - Desupported "tkVersion" variable: use "tk_version" instead.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/16/94 (feature changes) Changes to listboxes:
- - Eliminated -geometry option (it causes problems when .Xdefaults
- files contain entries like "*geometry: +0+0"). Added -width
- and -height options to use instead.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
- properly cleaned up after window deletion; this could cause the wrong
- value from the option database to be used under some conditions.
-
- 3/25/94 (new features) Changes to geometry management:
- - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
- to solve problems with -in windows. Modified the packer, the
- placer, and canvases to use them.
- - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
- to a pointer to a structure with additional information about
- the geometry manager, such as name and procedure to call when
- slaves are stolen.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/28/94 (new feature) Overhauled event management:
- - Added "cancel" option to the "after" command so that you can
- cancel previously-scheduled commands.
- - Separated X-specific stuff from generic event management. The
- file tkEvent.c can now be used stand-alone without the rest of Tk.
- See the manual entry for Tk_EventInit for information on which
- procedures are available this way.
- - Added Tk_CreateFileHandler2 procedure, which provides a lower-level
- and more powerful form of file event handler.
- - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
- the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
- (there were bugs with several other combinations too; all should
- be fixed now).
-
- 3/28/94 (new feature) Added "fileevent" command, which allows event-
- driven I/O in the style of Mark Diekhans' "addinput" command.
-
- 4/11/94 (new feature) Better support for colormaps and visuals:
- - Added new -colormap and -visual options to toplevels and frames.
- - Added "winfo visualsavailable" command.
- - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
- to Tk_SetWindowColormap.
- - Added new library procedures Tk_GetVisual, Tk_GetColormap,
- and Tk_FreeColormap.
-
- 4/11/94 (bug fix) Fixed core dump that used to occur when specifying
- an iconwindow ("wm iconwindow") for a toplevel on a different screen
- than the main window.
-
- 4/23/94 (new feature) Added support for images, including the following:
- - New "image" command for creating images.
- - Built-in image type: bitmap.
- - New "image" item type in canvases.
- - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
- menu entries now support a -image option for displaying images.
- - Tk_CreateImageType and Tk_ImageChanged procedures, for defining
- new types of images in C.
- - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
- procedures, for using images in widgets.
-
- 5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
- Tk_3DHorizontalBevel.
-
- 5/11/94 (new features) Major overhaul of text widgets:
- - Implemented embedded windows and "window" widget command.
- - Added new configuration options for tags: -justify, -lmargin1,
- -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
- See the "Display styles" widget demo for examples.
- - Added new configuration options for texts: -spacing1, -spacing2,
- and -spacing3.
- - Added "tagList" option to "insert" widget command to control
- tags on new text. Made tagged regions so they aren't sticky on
- either side: new characters get a tag only if the old chars. on
- both sides had it.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added gravity for marks, and "mark gravity" widget command.
- - Added horizontal scrolling, "xview" widget command, -xscrollcommand
- option. Changed "scan" widget commands to support horizontal
- scrolling.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "search" widget command for searching (either exact matches
- or regular expressions).
- - New widget commands: bbox, dlineinfo, and see.
- - Changed implementation of bindings so that Enter and Leave
- events are not generated unless the tag has just become present
- (or just ceased to be present) on the current character. Also
- changed bindings to process separately for each tag, rather than
- having high-priority tags override low-priority ones.
- - The "end" index now refers to the character after the last newline
- rather than the newline itself. You can now tag the final newline
- and set a mark after the final newline.
- - Deletions of the "sel" tag and the "insert" and "current" marks
- are now ignored silently, rather than generating errors. This means
- you can do things like "eval .t tag delete [.t tag names]".
-
- 5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
- text.
-
- 5/20/94 (new feature) Added "bell" command to ring the display's bell.
-
- 5/20/94 (new feature) Incorporated "square" demonstration widget into
- tktest application.
-
- 5/20/94 (new features) Changed wish application (tkMain.c):
- - wish no longer processes the -help option.
- *** POTENTIAL INCOMPATIBILITY ***
- - The wish main program is now called Tk_Main; tkAppInit.c has a
- "main" procedure that calls Tk_Main. This makes it easier to use
- Tk with C++ programs, which need their own main programs, and it
- also allows an application to prefilter the argument list before
- calling Tk_Main.
- *** POTENTIAL INCOMPATIBILITY ***
- - The application's class is now the same as its name (except the
- first letter is capitalized), instead of "Tk".
- *** POTENTIAL INCOMPATIBILITY ***
- - The -file keyword is no longer required: the script file name can
- be provided as the first argument without being preceded by "-file",
- as in tclsh. For backward compatibility the "-file" keyword is
- ignored if it is the first argument, but it is deprecated.
-
- 5/26/94 (feature removed) Removed support for "fill" justify mode from
- Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option. None
- of the built-in widgets ever supported this mode anyway.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
- that it converts reals to strings. This means that floating-point
- values will be generated in some cases where integer-like values were
- generated before.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
- The old "pack info" command is no longer available.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 6/20/94 (feature changes) Overhaul of entry widgets:
- - Added "-justify" option.
- - Added "-show" option to make entries easier to use for passwords.
- - Added "cget" widget command.
- - Added "selection range" and "selection present" widget commands.
- - Added "anchor" symbolic index.
- - Changed "-scrollcommand" option to "-xscrollcommand", "view"
- widget command to "xview", for compatibility with other widgets.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed sel.last to refer to character just *after* last one
- selected, again for compatibility with other widgets.
- *** POTENTIAL INCOMPATIBILITY ***
- - For "delete" widget command, second index now refers to character
- just *after* last one to delete.
- *** POTENTIAL INCOMPATIBILITY ***
- - Overhauled bindings to be more Motif-compatible and to include
- common Emacs bindings for editing.
- - Changed -width option: if specified as 0, widget sizes to fit
- its current text.
-
- 6/11/94 (new features) Improved Motif compatibility:
- - Added "-highlightwidth" and "-highlightcolor" options to all widgets.
-
- 6/27/94 (bug fix) Postscript generation for text items in canvases was
- not justifying the text properly when a -width was specified that was
- longer than the longest line.
-
- 6/27/94 (bug fix) "winfo exists" used to report a window as existing
- if it was in the process of being destroyed (i.e., a destroy handler
- is in the middle of execution). Changed to report it as non-existent
- under these conditions.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 7/11/94 (bug fix) Selections claimed via "selection own" weren't always
- being cleared properly when the selection was claimed away. Also fixed
- bug where Tk wasn't properly claiming the selection, if there haven't
- been any recent X events at the time of the claim.
-
- 7/13/94 (feature changes) Overhaul of scrollbar widgets:
- - New widget commands: "activate", "cget", "fraction", and "identify".
- - New options: -activebackground, -activerelief, -highlightcolor,
- -jump, -highlightthickness, and -troughcolor. What used to be
- -background is now -troughcolor, -foreground is now -background,
- and -activeforeground is now -activebackground.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added new syntax for "set" command, "get" result, and generated
- commands. Changed other widgets to use the new syntax.
- - Moved the bindings out of C and into Tcl scripts, using the new
- options and widget commands. Added support for all Motif
- bindings, plus jump scrolling and cancelling of slider drags.
-
- 7/16/94 (bug fix) Canvases assumed that the Leave event for one item
- didn't modify or delete the next current item; this could cause core
- dumps under some conditions.
-
- 7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
- is invoked as an idle handler. If tkerror generates a break exception
- then all other queued reports are aborted.
-
- 8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
- canvases, resulting in the same time being used for both.
-
- 8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
- variable name, such as trying to wait for an entire array.
-
- 9/2/94 (new features) Overhaul of scale widgets:
- - Floating-point values are supported now, following Paul Mackerras'
- "fscale" widget. Added "-resolution" and "-digits" options.
- - Added "-variable" option to link scale to variable, following
- Henning Schulzrinne's implementation.
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget commands "cget", "coords", "identify", plus
- improved "get"; removed wired-in bindings, added complete set
- of Motif bindings via Tcl scripts.
- - Changed -sliderforeground option to -background, -background to
- -troughColor, -activeforeground to -activebackground.
- *** POTENTIAL INCOMPATIBILITY ***
- - Moved value label from below horizontal scales to above the scale,
- for Motif compliance.
-
- 9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
- command under some conditions (window already at the top of the stack).
-
- 9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
- widgets:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Changed -selector option to -selectcolor, and changed its meaning
- too: empty no longer means don't draw the indicator; it means
- don't use a special color when selected.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added -indicatoron (controls whether indicator is displayed) and
- -selectimage (gives special image to display when selected) options.
- - Modified bindings to be more Motif-like, added binding for space
- key.
- - Changed padding defaults to give widgets correct Motif appearance
- by default. Also, changed to ignore padding options when displaying
- an image or bitmap.
- *** POTENTIAL INCOMPATIBILITY ***
- - Can now display text on multiple lines: newlines cause line breaks,
- and word wrapping can be requested with -wraplength option. Also
- added -justify and -underline options.
- - The -value option for radiobuttons can now have an empty string as
- its value; it no longer defaults to the name of the widget.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 9/13/94 (new features) Modified both canvases and messages to support
- -highlightthickness and -highlightcolor options plus "cget" widget
- command.
-
- 9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
- to use it. Also changed Tk_SetGrid so that at most one window per
- toplevel can have gridding enabled.
-
- 9/23/94 (new features) Major overhaul of listbox widgets:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Revised selection commands to support single selections as well
- as multiple disjoint selections; syntax of "selection" widget
- command has changed to support this. Added new option -selectmode
- for specifying which mode to use. Default is single selection;
- tk_listboxSingleSelect procedure no longer exists. Selections
- now return as items separated by newlines instead of a list whose
- elements are the items.
- *** POTENTIAL INCOMPATIBILITY ***
- - Extended "get" widget command to allow many items to be retrieved
- at once.
- - Added "bbox" widget command for finding position of an element on
- screen.
- - Added "activate" command to mark element with traversal focus.
- - Extended index mechanism to support new types of indices:
- "active", "anchor", "@x,y".
- - Added "see" widget command.
- - Revised bindings to include all Motif features except for AddMode.
- - If -width or -height option is <= 0, the widget requests a size just
- large enough to hold all of its text.
-
- 10/6/94 (new features) Overhaul of menubuttons:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Added -indicatoron option to display option menu indicator.
- - The -menu option must be a child of the menubutton.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 10/6/94 (new features) Overhaul of menu widgets:
- - Added new widget commands "cget" and "entrycget".
- - Changed the implementation of tear-off menus to be more
- Motif-like; added -tearoff option for specifying whether
- tearoff entry is displayed.
- - Changed interpretation of "@y" index: it now returns the
- closest entry, rather than "none" if y is outside the menu's
- range.
- *** POTENTIAL INCOMPATIBILITY ***
- - The -menu option for a cascade entry must now be a child of
- the menu.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "type" widget command, so that you can query the type of
- an entry.
- - Added -foreground, -activeforeground, -selectcolor, -indicatoron,
- -image, and -selectimage options to menu entries.
- - Changed "selector" menu option to "selectColor" for Motif compliance.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added -relief option for menus, just for consistency with other
- widgets (it was implicitly "raised" before).
-
- 10/6/94 (feature change) Completely overhauled the bindings for menus
- and menubuttons. They now fit better with other Tk 4.0 facilities,
- such as the new binding mechanism, and they provide better Motif
- compliance (e.g. keyboard traversal of submenus). Also, the bindings
- now support option menus, popup menus, and proper Motif tear-off
- menus.
-
- 10/6/94 (obsolete features) The procedures tk_menuBar and
- tk_bindForTraversal are no longer needed in Tk 4.0. They still exist
- for compability, but they do nothing.
-
- 10/6/94 (new procedures) Added "tk_popup" procedure for posting a
- popup menu, and "tk_optionMenu" for creating an option menubutton
- and its associated menu.
-
- 10/6/94 (change in name) The variable "tk_priv" has been renamed
- to "tkPriv" to reflect that fact that it is private to Tk now.
- This shouldn't cause any problems, since no-one except Tk should
- have been using it before anyway (right?).
-
- 10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
- stop tracking mouse motion (the "current" item wouldn't get updated)
- because the text widget missed a ButtonRelease event.
-
- 10/20/94 (new features) Overhauled selection code to support multiple
- selections (primary, secondary, etc.) and multiple displays:
- - Changed "selection" command to support new options such as
- "-displayof" and "-selection". Old command formats are still
- supported for compatibility, but they are no longer documented
- and are deprecated.
- - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
- Tk_ClearSelection to take additional "selection" argument.
- *** POTENTIAL INCOMPATIBILITY ***
- - Selection targets APPLICATION and WINDOW_NAME have been replaced
- by TK_APPLICATION and TK_WINDOW.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 10/20/94 (new features) Added support for clipboard:
- - New "clipboard" command.
- - C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
- - Bindings for "cut", "paste", and "copy" for text and entry widgets,
- plus "copy" binding for listboxes.
-
- 10/24/94 (bug fix) Button widgets weren't checking for errors when
- setting the values of associated variables.
-
- 11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
- from inside a <Destroy> binding.
-
- 11/15/94 (new features) Overhaul of focus mechanism:
- - Added support for multiple displays: separate focus windows are
- kept for each display.
- - Added support for keyboard traversal.
- - Changed focus model so Tk keeps track of a focus window for each
- top-level window and automatically sets the focus on Enter to the
- top-level. Tk no longer synthesizes FocusIn and FocusOut events,
- but just uses the standard X mechanisms. There is no "default"
- focus window anymore; the focus reverts to top-levels by default.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed focus command: eliminated "focus default" and "focus none",
- added "-displayof" and "-lastfor" options. An empty string is now
- used to signify "no focus" instead of "none".
- *** POTENTIAL INCOMPATIBILITY ***
- - Added library procedures tk_focusNext, tk_focusPrev, and
- tk_focusFollowsMouse.
- - Removed obsolete Tk_CreateFocusHandler: must use FocusIn and
- FocusOut events now.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 11/23/94 (new features) Overhaul of "send" command:
- - Added support for multiple displays: -displayof option to "send".
- - Added asynchronous sends: -async option to "send".
- - Eliminated fixed timeouts on sends: as long as the target
- application appears to exist, the send will wait for it.
- - Stale entries get removed from the application registry now,
- so "winfo interps" should never return non-existent applications.
- - Can change the name of an application with "tk appname" command.
- This is also the preferred way of querying the application name
- now.
- - The errorCode and errorInfo variables are now propagated back to
- the sender now, so a full stack trace is available.
- - Tk checks display security on each send now, instead of just during
- initialization, so changes in the security status are seen immediately
- by all applications.
- - The above changes required changes to the data formats used for
- communication between source and target applications, so Tk 4.0
- applications cannot send to, or be sent from, Tk 3.6 applications.
- *** POTENTIAL INCOMPATIBILITY ***
- - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
- since it is no longer needed.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/7/94 (feature change) Changed the "wm" command so that top-level
- windows are now resizable by default. You can no longer specify
- empty arguments to "wm maxsize" and "wm minsize".
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/8/94 (new feature) Added new "photo" image type using code provided
- by Paul Mackerras: currently supports only PPM "P6" format images.
-
- 12/14/94 (new features) Canvas modifications:
- - Modified the interfaces between generic canvas code and the item
- types so that it's easy for people to write new item types outside
- of Tk.
- - Added support for transparent bitmap items: just specify an
- empty string as the background color.
- - Changed the "xview" and "yview" commands for canvases to use the
- new scrolling syntax.
- - Eliminated -scrollincrement option.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
- scaled during a "scale" widget command, but the scaling was only
- temporary and got lost on the next re-configure of the item. The
- correct behavior is for the arrowheads not to scale.
-
- -------------------- Release 4.0b1, 12/23/94 -------------------------
-
- 12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
- size), fixed "install" target.
-
- 1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
- implicit conversions from prototypes don't work when compiling under
- non-ANSI compilers. Tk is now clean under gcc -Wconversion.
-
- 1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
- in tkCanvText.c: caused tabs in canvas text items to get messed up.
-
- 1/4/95 (bug fix) Canvases forgot to register the built-in types if
- Tk_CreateItemType was called before a canvas widget was created.
-
- 1/4/95 (bug fixes) Fixed glitches in various text bindings:
- - Up used to do nothing if the cursor was at 2.0.
- - Right used to make the cursor invisible if it was just before
- the final newline of the text.
- - Control-t didn't conform to Emacs; made it conform to GNU Emacs.
- - Deleted Control-x binding, since it doesn't conform to anything and
- is confusing for Emacs users.
-
- 1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
- above) an deleted Control-x for entries (see above).
-
- 1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
- this could cause slaves to get "lost" so that they weren't mapped until the
- master resized.
-
- 1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
- the mouse entered the widget; this caused problems if tk_strictMotif was
- set.
-
- 1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
- widgets to allow arbitrary screen distances when specifying -width and
- -height for an image or bitmap (the manual pages already documented this
- but the code didn't implement it).
-
- 1/6/95 (new feature) Added very primitive support for input methods,
- as suggested by Martin Forssen. This should be enough for European
- character sets (Compose key) but it isn't near enough for Asian
- character sets.
-
- 1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
- where divide-by-zero errors could sometimes occur.
-
- 1/8/95 (bug fix) New event handler didn't properly handle files for
- which both TK_READABLE and TK_WRITABLE were specified.
-
- 1/11/95 (bug fix) Fixed bug with text selections: was returning count
- too high for data, causing bogus garbage to appear when selection was
- copied.
-
- -------------------- Release 4.0b2, 1/12/95 -------------------------
-
- 1/27/95 (feature removal) Removed %D substitution from binding scripts:
- wasn't portable, shouldn't be used anyway.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 1/27/95 (new features) Added -displayof options to the commands
- "winfo atom", "winfo atomname", "winfo containing", "winfo interps",
- and "winfo pathname".
-
- 1/27/95 (new feature) Added "idle" option to "after" command to run
- scripts as idle handlers.
-
- 1/28/95 (new feature) Modified placer to make -x and -relx additive
- if you specify both. Same for -y and -rely, -width and -relwidth,
- and -height and -relheight. This makes it easy to make request such
- as "make .a 2 pixels larger than .b".
- *** POTENTIAL INCOMPATIBILITY ***
-
- 1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
- prevents current item from changing while a button is down): changed
- to report Enter and Leave events for the current item while a button
- is down. However, as before, no Enter events are reported for other
- items until the button goes up.
-
- 1/28/95 (new feature) Bitmap images are now transparent if the -background
- is specified as an empty string (-maskdata and -maskfile are ignored in
- this case). This is also the default.
-
- 1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
- such as SunAudioMute. Modified tkBind.c so that it uses XStringToKeysym
- in addition to its own hash table, so that all keysyms are now available.
-
- 1/30/95 (feature change) Modified "clipboard append" so that it reclaims
- the clipboard selection if it had been previously lost, rather than just
- generating an error. This handles certain race conditions more cleanly,
- and also allows the use of programs like "xclipboard".
-
- 1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
- options to canvases.
-
- 1/31/95 (bug fix) Geometry management was broken if a particular geometry
- manager claimed a slave away from itself.
-
- 1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
- than requested was being selected in preference to one with just the right
- number of bits.
-
- 1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
- after changes in -padx or -pady.
-
- 1/31/95 (new features) More text improvements:
- - Extended "insert" widget command for texts to allow multiple
- text-tagList pairs in the same command.
- - Added -nocase option to "search" widget command.
- - Added -overstrike option to tags.
- - Added tab stops, via -tabs option for widget and for tags.
-
- 2/10/95 (bug fix) Modified all widgets to allow renaming of widget
- commands. Deleting a widget command will delete the widget.
-
- 2/11/95 (new feature) Added -highlightbackground option to all widgets.
-
- 2/14/95 (new feature) Added "insert" widget command for menus.
-
- 2/15/95 (new feature) Modified text display code (for all widgets) to
- display well-known control characters like newline and backspace as
- \n or \b instead of \xa.
-
- 2/15/95 (bug fix) Modified bitmap and photo image managers to delete
- the image command when the image is deleted. Also modified them to
- allow renaming of the image command, and to delete the image if the
- image command is deleted.
-
- 2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
- even if wrapping was enabled, if a line isn't entirely visible due to
- a large character or embedded window.
-
- 2/16/95 (feature change) Added "postcascade" widget command to menus,
- changed "invoke" and "activate" not to post or unpost submenus. Also
- fixed bug in redisplay that tended to leave bits of garbage on menu
- when submenu unposted.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 2/16/95 (feature removal) Removed "snap back" behavior (slider
- snaps back to old position if you move the mouse outside the widet
- before releasing the button) from scrollbars and scales.
-
- 2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
- it was only partially visible.
-
- 2/16/95 (new features) Added support for "-resolution 0" (no rounding
- of values) to scale widgets, plus smarter computation of how many digits
- to display.
-
- 2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
- didn't properly set the anchor position.
-
- 2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
- add the toplevel implicitly to the end of the list if it wasn't already
- on the list somewhere. Without this, some window managers implicitly
- put it at the front of the list, so that colormaps in internal windows
- are never used.
-
- 2/20/95 (bug fix) Changed to use separate command procedures for
- button, checkbutton, label, and radiobutton commands. This allows the
- class commands to be renamed without breaking their behavior.
-
- 2/20/95 (removed feature) The "bind" command no longer supports
- "Keymap" events; they never worked anyway.
-
- 2/20/95 (bug fix) The text "search" widget command looped infinitely
- when searching an empty text.
-
- 2/20/95 (bug fix) Canvases weren't redrawing their borders after
- configuration changes.
-
- 2/20/95 (upgrade) Changed to use autoconf version 2.2.
-
- 2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
- when menus have no entries.
-
- 2/21/95 (bug fix) Fixed bug in geometry management that caused windows
- packed -in siblings to not always be mapped and unmapped properly
- (particularly when the toplevel got unmapped and mapped).
-
- 2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
- caused embedded windows not to be unmapped when off-screen.
-
- 2/23/95 (bug fix) "After cancel" dumped core when the script for an
- after event cancelled itself.
-
- 2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
- Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
- for one of these resulted in the character also being inserted.
-
- 2/24/95 (bug fix) Several widgets accidentally performed unsigned
- division on negative numbers, thereby losing the sign bit. This
- mostly affected the display of images and bitmaps in buttons,
- menubuttons, and messages.
-
- 2/24/95 (feature reversal) Restored old behavior of %A so that it
- returns non-printing characters as well as printing ones now.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
- 2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
- items under some conditions, due to recursive calls to PickCurrentItem.
- Added code to detect and skip the nested calls.
-
- 2/24/95 (bug fix) Fixed bug where an error could occur during the first
- keystroke in an application if its binding invoked "break".
-
- 2/25/95 (new feature) Modified syntax of "search" widget command for
- texts. The -nowrap switch and the "variable" final argument are no
- longer supported. Instead, there is a -count switch to replace
- the final argument; if the final argument is specified, it is now
- a stopping index for the search. The features of -nowrap can be
- achieved now with the stopping index.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
- 2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
- input for working under IRIX: tkBind.c was ignoring XmbLookupString
- calls that returned a status of XLookupBoth.
-
- 2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
- information about available canvas item types.
-
- 2/27/95 (feature change) Changed Makefile to always use install-sh
- for installations: there's just too much variation among "install"
- system programs, which makes installation flakey.
-
- 2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
- the app's main window was destroyed by a destroy handler on a
- child.
-
- 3/5/95 (feature change) Change separator character used in "bind +..."
- bindings from semi-colon to newline (permits bindings that are
- comments, for what that's worth).
-
- 3/7/95 (bug fix/feature change) Overhauled focus code, both in C
- and in Tcl:
- - Tk won't move the X focus in response to the "focus" command
- unless either the application already has the focus or the
- -force switch is specified.
- - Tk no longer sets the X focus to anything other than top-levels;
- it synthesizes events for FocusIn and FocusOut to children.
- - A window no longer has to be viewable when focussed to; Tk will
- set the X focus later, when the window becomes viewable.
- - Added -takefocus option to all widgets.
- - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
- These procedures no longer set the focus; they just return the
- next window in focus order.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
- - Eliminated tk_focusContinue.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
- 3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
- in C: Tk_StrictMotif library procedure. Modified buttons, menubuttons,
- menus to use it. This fixes the problem with menus not supporting
- tk_strictMotif properly in Tk4.0b1 and b2.
-
- 3/16/95 (feature overhaul) Overhauled color management:
- - Changed Tk so it never denies a color request because a colormap
- filled up. Instead, it allocates the closest available color.
- - Eliminated "color model" mechanism. The "tk colormodel" command
- is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed 3D border implementation to allocate colors for shadows
- lazily, so they're never allocated if they're never used. Also
- added new feature whereby stippling is used for borders when
- the colormap has run out of entries. Changed arguments to many
- of Tk_3D C procedures to take a Tk_Window as argument instead of
- a (Display *). This is needed to do lazy color allocation.
- *** POTENTIAL INCOMPATIBILITY ***
- - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
- and Tk_Get3DBorder.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/16/95 (feature change) Event bindings created from Tcl will now ignore
- Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
- This is done in anticipation of mega-widgets, so that the user of a
- mega-widget can create Enter/Leave bindings on the mega-widget without
- seeing spurious events as the mouse moves among the windows in the
- mega-widget.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
- instead of unsigneds: the unsigneds turn out to cause subtle problems
- with arithmetic in some places, and using ints everywhere is just
- simpler.
- *** POTENTIAL INCOMPATIBILITY ***
-
- 3/23/95 (bug fix) Selections longer than 4000 bytes were being
- truncated to 4000 bytes.
-
- -------------------- Release 4.0b3, 3/24/95 -------------------------
-
- 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
- "make install" will work even when "." isn't in the search path.
-
- 3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
- dumps in other applications during retrievals of large selections
- (this is actually a bug in the other apps, but I've patched Tk to
- keep it from getting triggered).
-
- 3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
- deleted.
-
- 3/27/95 (bug fix) Fixed many bugs associated with having more than
- one application in a single process.
-
- 3/28/95 (bug fix) The "search" widget command for texts didn't
- return the correct index and count if there were embedded widgets
- on the same line as the returned range but before the end of
- the range.
-
- 3/28/95 (bug fix) Changed pasting via button 2 in text and entries
- so that it inserts at the pointer location, not the location of
- the insertion cursor.
-
- 3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
- that delete ancestors in the window hierarchy. Also eliminated
- extraneous calls to XDestroyWindow, which speeds up window deletion
- by about 3x.
-
- 3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
- properly handle image deletions that occurred while the widget was
- being deleted (caused core dumps).
-
- 3/29/95 (bug fix) When retrieving long selections from text widgets,
- parts of lines were getting duplicated in the selection information.
-
- 4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
- scales with 0 range.
-
- 4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
- -takefocus option that caused commands to be evaluated in the wrong
- context.
-
- 4/1/95 (bug fix) Fixed problem with option database that caused it to
- sometimes use the wrong option (wasn't flushing the database properly
- after a change in a window's class).
-
- 4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
- Tk was allocating a second screen line just for the newline character.
-
- 4/1/95 (new feature) When backspacing in an entry widget, when you reach
- the left edge of the widget, the insertion cursor gets recentered.
-
- 4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
- to fetch the current pointer position.
-
- 4/6/95 (bug fix) If the last line of a text widget was only partially
- visible, it was counted as visible for purposes of the scrollbar. Now
- it is treated as if it were off-screen for scrolling purposes.
-
- 4/6/95 (new feature) Modified "bell" command to reset screen saver as well.
-
- 4/6/95 (feature change) Modified menu scanning (where menus pull down
- as you drag across their menubuttons) so it only works among menus
- in the same toplevel; it used to work for any menubuttons in the
- application.
-
- 4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
- "@x,y" notation for specifying indices.
-
- 4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
- was large.
-
- 4/7/95 (bug fix) Changed "clipboard append" command to support -- option
- and to always treat the last argument as data, even if it starts with
- "-".
-
- 4/17/95 (new feature) Added -wrap option to text tags.
-
- 4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
- when -width or -height changed.
-
- 4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
- line was only partially visible in the window.
-
- 4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
- right: couldn't scroll it into full visibility, for example.
-
- 4/20/95 (bug fix) If a toplevel was positioned with a command like
- "wm geometry . -0-0", the window didn't reposition itself to maintain
- that geometry after a size change.
-
- 4/21/95 (feature change) Changed order of binding tags so widget bindings
- fire before class bindings. New order is: widget, class, toplevel, all.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-
- 4/23/95 (new feature) Added "winfo colormapfull" command.
-
- 4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
- treat Return the same as Space, unless tk_strictMotif is set.
-
- 4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
- binding tags and bindings of the original in the copy.
-
- 4/25/95 (bug fix and feature change) Modified mechanism for choosing
- "best" visual to fix a bug where depth wasn't really getting highest
- priority in all situations.
-
- 4/28/95 (bug fix) Failed text searches starting at "end" could result
- in an infinite loop in Tk.
-
- 4/30/95 (new feature) Added "wm resizable" command to enable and
- disable interactive resizing.
-
- 4/30/95 (new feature) Added "window names" widget command to texts:
- returns a list of all embedded windows.
-
- 5/2/95 (feature change) Changed text searches so that forward searches
- start at the given index, rather than the character just after the
- given index.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-
- 5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
- ForgetGravity) causing unnecessary flashing when windows were resized.
-
- 5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
- sleep if there's nothing that will wake it up again (e.g. no file
- or timer handlers). Returns 0 immediately.
-
- 5/5/95 (configuration change) Changed to use BSDgettimeofday instead
- of gettimeofday on systems like IRIX where BSDgettimeofday is
- available. This avoids compilation problems due to the different
- interface to gettimeofday provided by IRIX.
-
- 5/5/95 (feature change) Changed binding mechanism so that all bindings
- are created immediately at initialization time, rather than waiting
- until the first FocusIn or Enter event for a class.
-
- 5/6/95 (feature change) Changed default text for labels, buttons,
- checkbuttons, radiobuttons, menubuttons, and messages from " " to
- "".
-
- 5/6/95 (bug fix) If the application was destroyed in the middle of
- an "update" command, Tk would dump core.
-
- 5/6/95 (bug fix) Changed manual entries to use the standard .TH
- macro instead of a custom .HS macro; the .HS macro confuses index
- generators like makewhatis.
-
- 5/6/95 (bug fix) Change "wm iconwindow" command to disable button
- presses for the icon window. This is needed so that the window
- manager can get those events (X only allows button presses to go
- to one client for a given window).
-
- 5/9/95 (new feature) When specifying visuals, can now use "best"
- with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
-
- 5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
- screen distances weren't allowed, only integers.
-
- 5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
-
- 5/22/95 (color change) Changed the Tk color palette to a gray scheme.
- Also added a library procedure tk_setPalette that makes it easy to
- change colors on the fly, and a procedure tk_bisque that restores the
- previous light brown scheme.
-
- 5/28/95 (bug fix) Modified canvases so that the -width and -height
- options refer to the space inside the borders, not the total widget
- space. Also changed "xview" and "yview" commands and scroll-increment
- rounding to use the pixel just inside the borders, rather than (0,0).
-
- 5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
- didn't properly handle unsets of variables they were tracing, if the
- variables were reference through upvars in procedures.
-
- 6/4/95 (bug fix) The placer wasn't rounding window widths right when
- both -relx and -relwidth were specified (or -rely and -relheight) so
- that rounding errors accumulated.
-
- 6/4/95 (feature improvement) Change parsing of text indices to handle
- weird mark and tag names better (e.g. any string ending with ".first"
- will now be parsed as a tag name, even if it contains embedded spaces,
- etc.).
-
- 6/4/95 (feature change) If a font defines glyphs for control characters,
- they are now displayed, instead of translating the character to a
- backslash sequence (however, tabs and newlines are still treated
- specially; glyphs are not displayed for these characters).
-
- 6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
- toplevels so that it now works under olwm and olvwm. It didn't use to
- work, and the problem is really in the window manager, but Tk now
- patches around it. However, only "total" raises and lowers work:
- raising and lowering relative to a sibling still don't work under
- olvwm and olwm.
-
- 6/4/95 (feature change) Modified tab code in texts so that a tab always
- occupies at least as much space as a space character.
-
- 6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
- Enter and Leave event bindings.
-
- 6/7/95 (new feature) Added support for GIF images. Unfortunately it's
- a bit fragile: certain kinds of badly formed images can cause core
- dumps; I don't know enough about the GIF reader (taken from giftoppm)
- to figure this out.
-
- 6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
- flexible about header formats, and added support for PGM images.
-
- 6/7/95 (feature change) Added -outlinestipple option to canvas arc
- items, changed "-style arc" to use -outline as the color instead of
- -fill (the old approach was pretty quirky).
- *** POTENTIAL INCOMPATIBILITY ***
-
- 6/8/95 (feature change) Modified interface to Tk_Main to pass in the
- address of the application-specific initialization procedure.
- Tcl_AppInit is no longer hardwired into Tk_Main. This is needed
- in order to make Tcl a shared library.
-
- 6/8/95 (feature change) Modified Makefile so that the installed versions
- of wish and libtk.a have version number in them (e.g. wish4.0 and
- libtk4.0.a) and the library directory name also has an embedded version
- number (e.g., /usr/local/lib/tk4.0). This should make it easier for
- Tk 4.0 to coexist with earlier versions.
-
- 6/9/95 (new feature) Added -outline and -width options to canvas polygon
- items.
-
- 6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
- (decimate wasn't technically correct).
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-
- -------------------- Release 4.0b4, 6/16/95 -------------------------
-
- 6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
- Postscript generation: caused "white" to appear slightly gray when
- the display of the canvas used only 8 bits per color.
-
- 6/20/95 (bug fix) "bbox" widget command for texts didn't return
- proper width for tabs.
-
- 6/20/95 (bug fix) Scrollbars didn't always work right for texts:
- couldn't scroll all the way to the bottom of the text in a single
- drag of the slider.
-
- 6/20/95 (new feature) Added "delta" widget command for scrollbars
- (needed for above bug fix).
-
- 6/23/95 (bug fix) Listboxes weren't properly redisplaying their
- borders when the were configured to a smaller size.
-
- 6/23/95 (new feature) Added "winfo server" command.
-
- 6/23/95 (bug fix) If a menu was posted, couldn't switch to another
- menu with an Alt- key.
-
- 6/24/95 (new feature) Added "winfo pointerxy" command.
-
- 6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
- option names.
-
- 6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
- could get garbage in it if the main window's class was changed by
- calling Tk_SetClass.
-
- 6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
- variable traces weren't propagated correctly and one where "invoke"
- was invoked at the wrong stack level, with the result that variable
- traces didn't have access to the right variables.
-
- 6/27/95 (bug fix) tk3d.c wasn't using all the right information
- when deciding whether or not to stipple borders, so it stippled
- borders even on 16-bit true-color displays.
-
- 6/28/95 (bug fix) Page up and down operations in texts could cause
- insertion cursor to drift to the right. Changed tkTextScrollPages
- to use upper-left corner of current character, rather than center
- of character.
-
- 6/28/95 (bug fix) Changed text widget so that you can't put the
- insertion cursor after the last newline in the text.
-
- 6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
-
- 6/28/95 (bug fix) Fixed problem that could cause core dumps in the
- text widget when dealing with embedded windows (there were problems
- if the act of redisplaying caused the window layout to change, which
- can happen with embedded windows).
-
- 6/28/95 (bug fix) Texts didn't handle indices with double negatives,
- such as ".t mark set insert {insert + -20 chars}".
-
- 6/28/95 (bug fix) Fixed problem where focus didn't always revert to
- its prior window after a dialog box was dismissed.
-
- 6/28/95 (bug fix) Fixed problem with "search" widget command returning
- incorrect length on some backwards regexp searches.
-
- 6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
- a core dump.
-
- 6/29/95 (new feature) Added -elementborderwidth option for scrollbars
- so the -borderwidth can be set to 0 without flattening the arrows and
- slider.
-
- -------------------- Release 4.0, 7/1/95 -------------------------
-